package com.zz.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zz.common.R;
import com.zz.entity.Club;
import org.hibernate.validator.constraints.Range;

import javax.annotation.Nullable;
import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author HUAWEI
 */
public interface ClubService  extends IService<Club> {

    /**
    * 展示管理的所有社团
    * */
    R<List<Club>> manageClubList(HttpServletRequest request);

    /**
    * 选择将要管理的社团
     * 将社团id 存到session中
    * */
    R<String> chooseClub(int clubId, HttpServletRequest request);

    /**
    * 退出对本社团的管理
    * */
    R<String> clubLogout(HttpServletRequest request);

    /**
    *（根据社团名称）分页展示社团信息
    *
    * */
    R<List<Club>> page(@Nullable String clubName, String classify);

    /**
    * 根据社团类别展示社团
    *
    * */
//    R<List<Club>> classify(String classify);

    /**
    * 用户：参加社团
    * */
    R<String> join(int clubId, HttpServletRequest request);

    /**
    * 用户：退出已经参加的社团
    * */
    R<String> exit(int clubId, HttpServletRequest request);

    /**
    * 注册社团
    * */
    R<String> registerClub(Club club);

    /**
    * 编辑社团信息:社团名称和编码不允许修改
    * */
    R<String> editClub(Club club);

    /**
    * 查看社团详细信息
    * */
    R<Club> clubInfo(int clubId);
}
